<?php

declare(strict_types=1);

namespace DreamCat\ControllerParamGen;

use Psr\Http\Message\ServerRequestInterface;
use ReflectionMethod;

/**
 * 控制器参数生成接口
 * @author vijay
 */
interface ControllerParamGeneratorInterface
{
    /**
     * 生成控制器容器
     * @param ReflectionMethod $reflectionMethod 控制器方法反射
     * @param ServerRequestInterface $serverRequest 请求对象
     * @param array $pathVariables 占位符列表，key是名称
     * @return array 生成的参数列表
     */
    public function generateParams(
        ReflectionMethod $reflectionMethod,
        ServerRequestInterface $serverRequest,
        array $pathVariables
    ): array;
}

# end of file
